namespace java net.ulrice.mdls.services



struct JmxAttribute {
  1: string objectName,
  2: string name,
  3: string value;
}

struct Graph {
  1: string name,
  2: list<JmxAttribute> attributes;
}

struct Application {
  1: string name,
  2: i32 refreshRate,
  3: string jmxHost,
  4: string jmxPort,
  5: string jmxUser,
  6: string jmxPassword,
  7: list<Graph> graphs;
}

struct Settings {
  1: list<Application> applications;
}

exception SettingsStoreException {
  1: i32 what,
  2: string why
}

service MdlsService {
   Settings loadSettings(),   
   void storeSettings(1:Settings settings) throws (1:SettingsStoreException e);

   string getMdlsVersion();
}
